<?php



/**

 * 后台用户相关

 */



namespace app\admin\controller;



use think\Db;

use think\response\Json;



class User extends BaseController

{

    /**

     * 列表视图

     */

    public function index()

    {

        return view();

    }



    /**

     * 获取列表信息

     */

    public function getList()

    {

        // 获取参数

        $params = input("get.");

        $page = isset($params["page"]) ? $params["page"] : 1;

        $limit = isset($params["limit"]) ? $params["limit"] : 30;

        $offset = ($page - 1) * $limit;

        // 定义查询条件

        $where[] = ["status", "<>", 3];

        $where[] = ["username", "<>", 'wangjia'];

        

        // 定义查询字段

        $fields = "id,(select title from w_role where w_role.id = w_user.role_id) roleName,name,username,phone,email,address,status,create_time";

        // 统计查询条数

        $count = db("user")->where($where)->count();

        // 查询数据

        $info = db("user")->where($where)->field($fields)->order("create_time desc")->limit($offset, $limit)->select();

        // 定义返回数据

        $arr = ["code" => 0, "msg" => 'true', "data" => $info, "count" => $count];

        return json($arr);

    }



    /**

     * 添加视图

     */

    public function add()

    {

        // 查询角色信息

        $role = db("role")->where(["status" => 1])->where('id', '<>', 4)->order("create_time desc")->select();

        $this->assign("role", $role);

        return view();

    }



    /**

     * 编辑视图

     */

    public function edit()

    {

        // 获取参数

        $params = input("get.");

        $id = isset($params["id"]) ? $params["id"] : '';

        // 定义数据

        $info = [];

        // 验证参数

        if (isset($params["id"])) {

            // 查询信息

            $info = db("user")->where("id", "=", $params["id"])->find();

        }

        // 查询角色信息

        $role = db("role")->where(["status" => 1])->where('id', '<>', 4)->order("create_time desc")->select();

        $this->assign("role", $role);

        $this->assign("info", $info);

        $this->assign("id", $id);

        return view();

    }



    /**

     * 保存信息

     */

    public function save()

    {

        // 获取参数

        $params = input("post.");

        // 验证密码

        if (isset($params["password"]) && !empty($params["password"])) {

            $params["password"] = md5($params["password"]);

        }

        // 验证数据ID

        if (!empty($params["id"])) {

            // 修改

            db("user")->update($params);

        } else {

            // 释放参数ID

            unset($params["id"]);

            $params["create_time"] = date("Y-m-d H:i:s");

            // 数据保存

            db("user")->insert($params);

        }

        return json(["code" => 0, "msg" => "操作は成功しました"]);

    }



    /**

     * 修改密码试图

     */

    public function password()

    {

        // 获取参数

        $params = input("get.");

        $id = isset($params["id"]) ? $params["id"] : '';

        // 定义数据

        $info = [];

        // 验证参数ID

        if (isset($params["id"])) {

            // 查询数据

            $info = db("user")->where("id", "=", $params["id"])->find();

        }

        $this->assign("info", $info);

        $this->assign("id", $id);

        return view();

    }



    /**

     * 密码修改

     */

    public function passwordfun()

    {

        // 获取参数

        $params = input("post.");

        // 验证参数

        if (isset($params["id"]) && !empty($params["id"])) {

            // 获取用户信息

            $info = db("user")->where("id", "=", $params["id"])->find();

            // 验证原始密码

            if ($info["password"] == md5($params["oldpassword"])) {

                // 验证新密码和原始密码

                if ($params["oldpassword"] != $params["password"]) {

                    // 验证两次数据的新密码

                    if ($params["password"] == $params["newpassword"]) {

                        // 定义修改数据

                        $data = [

                            "id" => $info["id"],

                            "password" => md5($params["password"])

                        ];

                        // 修改信息

                        db("user")->update($data);

                        // 释放session

                        session("userinfo", null);

                        // 定义返回数据

                        $arr = ["code" => 0, "msg" => "パスワードが正常に変更されました"];

                    } else {

                        // 定义返回数据

                        $arr = ["code" => 1, "msg" => "2 回入力した新しいパスワードは一致しません。"];

                    }

                } else {

                    // 定义返回数据

                    $arr = ["code" => 1, "msg" => "新しいパスワードを元のパスワードと同じにすることはできません。"];

                }

            } else {

                // 定义返回数据

                $arr = ["code" => 1, "msg" => "元のパスワードが間違っています!"];

            }

        } else {

            // 定义返回数据

            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータ userid がありません。"];

        }

        return json($arr);

    }



    /**

     * 字段保存

     */

    public function inputChange()

    {

        // 获取参数

        $params = input("post.");

        // 验证参数

        if (isset($params['id']) && !empty($params['id'])) {

            // 修改信息

            db("user")->update($params);

            // 定义返回数据

            $arr = ["code" => 0, "msg" => "操作は成功しました"];

        } else {

            // 定义返回数据

            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータがありません"];

        }

        return json($arr);

    }



    /**

     * 删除数据

     */

    public function delete()

    {

        // 获取参数

        $params = input("post.");

        // 验证参数

        if (isset($params["ids"]) && !empty($params["ids"])) {

            // 定义查询条件

            $where["id"] = array("in", $params["ids"]);

            // 更新数据

            db("user")->whereIn('id', $params["ids"])->update(["status" => 3]);

            // 定义返回数据

            $arr = ["code" => 0, "msg" => "正常に削除されました"];

        } else {

            // 定义返回数据

            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータがありません"];

        }

        return json($arr);

    }



    /**

     * 重置密码

     */

    public function uppass()

    {

        // 获取参数

        $params = input("post.");

        // 验证参数

        if (isset($params["ids"]) && !empty($params["ids"])) {

            // 定义查询条件

            $where["id"] = array("in", $params["ids"]);

            // 更新数据

            db("user")->where($where)->update(["password" => md5('123456a')]);

            // 定义返回数据

            $arr = ["code" => 0, "msg" => "パスワードのリセットが成功しました"];

        } else {

            // 定义返回数据

            $arr = ["code" => 1, "msg" => "操作が失敗しました。パラメータがありません"];

        }

        return json($arr);

    }

}

